package com.ayu.shortlink.admin.service;

import com.ayu.shortlink.admin.dao.entity.CouponTemplateDO;
import com.ayu.shortlink.admin.dto.req.CouponTemplateAddNumReqDTO;
import com.ayu.shortlink.admin.dto.req.CouponTemplateAddReqDTO;
import com.ayu.shortlink.admin.dto.req.CouponTemplatePageQueryReqDTO;
import com.ayu.shortlink.admin.dto.resp.CouponTemplatePageQueryRespDTO;
import com.ayu.shortlink.admin.dto.resp.CouponTemplateQueryRespDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

public interface CouponTemplateService extends IService<CouponTemplateDO> {
    /**
     * 创建优惠券模版
     * @param requestParam 优惠券模版请求参数
     */
    void createCouponTemplate(CouponTemplateAddReqDTO requestParam);

    /**
     * 进行优惠券的分页查询
     * @param requestParam 分页查询请求参数
     * @return 分页查询结果
     */
    IPage<CouponTemplatePageQueryRespDTO> pageQueryCouponTemplate(CouponTemplatePageQueryReqDTO requestParam);

    /**
     * 根据 ID 查询优惠券模板相应信息
     * @param couponTemplateId 优惠券模板 ID
     * @return 优惠券模版具体信息
     */
    CouponTemplateQueryRespDTO findCouponTemplateById(String couponTemplateId);

    /**
     * 根据 ID和 shopNumber 查询优惠券模板相应信息
     * @param shopNumber 商家ID
     * @param couponTemplateId 优惠券ID
     * @return 优惠券模版具体信息
     */
    CouponTemplateDO findCouponTemplate(String shopNumber, String couponTemplateId);
    /**
     * 根据 ID 取消优惠券模版信息
     * @param couponTemplateId 优惠券模版 ID
     */
    void cancelCouponTemplateById(String couponTemplateId);

    /**
     * 根据 ID 增加优惠券数量
     * @param requestParam 请求
     */
    void addCouponTemplateNumber(CouponTemplateAddNumReqDTO requestParam);

    /**
     * 根据 ID 增加优惠券数量V2
     * @param requestParam 请求
     */
    void addCouponTemplateNumber2(CouponTemplateAddNumReqDTO requestParam);
}
